package br.com.eproducao.controller;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

import br.com.eproducao.model.entity.produto.Risco;
import br.com.eproducao.model.entity.produto.TipoMateriaPrima;
import br.com.eproducao.model.service.RiscoService;
import br.com.eproducao.model.service.TipoMateriaPrimaService;

@ManagedBean(name="BuscarTipoMateriaPrima")
@SessionScoped
public class BuscarTipoMateriaPrimaMB
{

	private TipoMateriaPrima tipoMateriaPrima;
	
	private String descr;

	private Risco risco;

	private long selectRisco;

	private List<SelectItem> listRiscos;

	private List<Risco> lRisco;
	
	private List<TipoMateriaPrima> listTipoMateriaPrima;
	
	private TipoMateriaPrima selectTipoMateriaPrima;
	
	@ManagedProperty("#{riscoService}")
	private RiscoService riscoService;

	@ManagedProperty("#{tipoMateriaPrimaService}")
	private TipoMateriaPrimaService tipoMateriaPrimaService;
	
	public List<TipoMateriaPrima> getListTipoMateriaPrima()
	{
		return listTipoMateriaPrima;
	}

	public void setListTipoMateriaPrima( List<TipoMateriaPrima> listTipoMateriaPrima )
	{
		this.listTipoMateriaPrima = listTipoMateriaPrima;
	}

	public TipoMateriaPrima getSelectTipoMateriaPrima()
	{
		return selectTipoMateriaPrima;
	}

	public void setSelectTipoMateriaPrima( TipoMateriaPrima selectTipoMateriaPrima )
	{
		this.selectTipoMateriaPrima = selectTipoMateriaPrima;
	}

	public RiscoService getRiscoService()
	{
		return riscoService;
	}

	public void setRiscoService( RiscoService riscoService )
	{
		this.riscoService = riscoService;
	}
	
	public TipoMateriaPrimaService getTipoMateriaPrimaService()
	{
		return tipoMateriaPrimaService;
	}

	public void setTipoMateriaPrimaService( TipoMateriaPrimaService tipoMateriaPrimaService )
	{
		this.tipoMateriaPrimaService = tipoMateriaPrimaService;
	}

	public TipoMateriaPrima getTipoMateriaPrima()
	{
		return tipoMateriaPrima;
	}

	public void setTipoMateriaPrima( TipoMateriaPrima tipoMateriaPrima )
	{
		this.tipoMateriaPrima = tipoMateriaPrima;
	}

	public String getDescr()
	{
		return descr;
	}

	public void setDescr( String descr )
	{
		this.descr = descr;
	}

	public Risco getRisco()
	{
		return risco;
	}

	public void setRisco( Risco risco )
	{
		this.risco = risco;
	}

	public long getSelectRisco()
	{
		return selectRisco;
	}

	public void setSelectRisco( long selectRisco )
	{
		this.selectRisco = selectRisco;
	}

	public List<SelectItem> getListRiscos()
	{

		lRisco = riscoService.buscarTodos();
		listRiscos = new ArrayList<SelectItem>();

		for ( int i = 0; i < lRisco.size(); i++ )
		{
			listRiscos.add( new SelectItem( lRisco.get( i ).getCodRisco(), lRisco.get( i ).getDescRisco() ) );
		}
		return listRiscos;
	}

	public void setListRiscos( List<SelectItem> listRiscos )
	{
		this.listRiscos = listRiscos;
	}

	public List<Risco> getlRisco()
	{
		return lRisco;
	}

	public void setlRisco( List<Risco> lRisco )
	{
		this.lRisco = lRisco;
	}
	
	public String Voltar(){
		Limpar();
		return "TipoMateriaPrima";
	}
	
	public void Limpar(){
		this.descr = null;		
		this.selectRisco = 0;
		this.listTipoMateriaPrima = null;
		FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove( "TipoMateriaPrima" );
		FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove( "BuscarTipoMateriaPrima" );
	}
	
	public void Buscar(){
		listTipoMateriaPrima = tipoMateriaPrimaService.buscarTipoMateriaPrima( descr, selectRisco );
	}
	
	public String Carregar(){
		
		TipoMateriaPrimaMB tipomateriaprima = (TipoMateriaPrimaMB)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get( "TipoMateriaPrima" );
		tipomateriaprima.setTipoMateriaPrima( selectTipoMateriaPrima );
		tipomateriaprima.setDescr( selectTipoMateriaPrima.getDescTipoMateriaPrima() );
		tipomateriaprima.setId( selectTipoMateriaPrima.getCodTipoMateriaPrima());
		tipomateriaprima.setSelectRisco( selectTipoMateriaPrima.getClassifRisco().getCodRisco() );
		FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put( "TipoMateriaPrima", tipomateriaprima );
		FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove( "BuscarTipoMateriaPrima" );
		
		return "TipoMateriaPrima";
	}
}
